
#这种方式要全部文件重新生成
#test1:test.c
#	gcc test.c -o test


SRC=$(wildcard ./*.c)  #获取所有 .c 文件放到 SRC 变量中
OBJ=$(patsubst %.c,%.o,$(SRC))#针对 SRC 变量的内容，将 .c 替换到 .o 保存到 OBJ 中
test3:$(OBJ)
	gcc $< -o $@


#使用预定义变量符号简化
test2:test.c
	gcc $< -o $@

%.o:%.c
	gcc -c $< -o $@


#分步骤来进行编译，若某一个文件发生了修改，则只需要重新生成被修
#改的文件在打包生成最终的目标文件即可
test:test.o
	gcc test.o -o test
test.o:test.s
	gcc -c test.s -o test.o
test.s:test.i
	gcc -S test.i -o test.s
test.i:test.c
	gcc -E test.c -o test.i
#伪对象
.PHONY:clean
clean:
	rm -rf test.o test.s test.i



